using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity.ModelConfiguration;

namespace teste.Models.Mapping
{
    public class ItemTabelaDePrecoMap : EntityTypeConfiguration<ItemTabelaDePreco>
    {
        public ItemTabelaDePrecoMap()
        {
            // Primary Key
            this.HasKey(t => t.Id);

            // Properties
            // Table & Column Mappings
            this.ToTable("ItemTabelaDePrecoes");
            this.Property(t => t.Id).HasColumnName("Id");
            this.Property(t => t.Codigo).HasColumnName("Codigo");
            this.Property(t => t.TipoVeiculoId).HasColumnName("TipoVeiculoId");
            this.Property(t => t.TipoVagaId).HasColumnName("TipoVagaId");
            this.Property(t => t.PeriodoInicial).HasColumnName("PeriodoInicial");
            this.Property(t => t.CustoPeriodoInicial).HasColumnName("CustoPeriodoInicial");
            this.Property(t => t.PeriodoAdicional).HasColumnName("PeriodoAdicional");
            this.Property(t => t.CustoPeriodoAdicional).HasColumnName("CustoPeriodoAdicional");
            this.Property(t => t.Domingo).HasColumnName("Domingo");
            this.Property(t => t.Segunda).HasColumnName("Segunda");
            this.Property(t => t.Terca).HasColumnName("Terca");
            this.Property(t => t.Quarta).HasColumnName("Quarta");
            this.Property(t => t.Quinta).HasColumnName("Quinta");
            this.Property(t => t.Sexta).HasColumnName("Sexta");
            this.Property(t => t.Sabado).HasColumnName("Sabado");
            this.Property(t => t.Matutino).HasColumnName("Matutino");
            this.Property(t => t.Vespertino).HasColumnName("Vespertino");
            this.Property(t => t.Noturno).HasColumnName("Noturno");
            this.Property(t => t.TabelaPrecoId).HasColumnName("TabelaPrecoId");
            this.Property(t => t.TabelaPreco_Id).HasColumnName("TabelaPreco_Id");
            this.Property(t => t.TipoVeiculo_Id).HasColumnName("TipoVeiculo_Id");
            this.Property(t => t.Vaga_Id).HasColumnName("Vaga_Id");

            // Relationships
            this.HasOptional(t => t.TABELADEPRECO)
                .WithMany(t => t.ItemTabelaDePrecoes)
                .HasForeignKey(d => d.TabelaPreco_Id);
            this.HasOptional(t => t.TIPODEVEICULO)
                .WithMany(t => t.ItemTabelaDePrecoes)
                .HasForeignKey(d => d.TipoVeiculo_Id);
            this.HasOptional(t => t.VAGA)
                .WithMany(t => t.ItemTabelaDePrecoes)
                .HasForeignKey(d => d.Vaga_Id);

        }
    }
}
